<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        var username="alice";//全局变量
        function f1(){
            var age=30;//局部变量
            function f2(){
                var sex="男";//局部变量
                console.log("全局变量:"+username);
                console.log("局部变量:"+age);
                console.log("局部变量:"+sex);
                function f3(){
                    console.log(username);
                    console.log(age);
                    console.log(sex);
                }
                f3();
            }
            f2();
            // console.log(sex);//报错，父函数不能访问定义其内部的其他函数的局部变量的
        }
        f1();
        console.log("================ES5中var不支持块级作用域的====================");
        for(var i=1;i<=10;i++){
            var b=99;
        }
        console.log(b);
        console.log("======================变量提升=====================");
        console.log(y);
        var y="哈哈哈";

        // var y;
        // console.log(y);
        // y="哈哈哈哈";

        console.log("定义函数的两种方式");
        // 方式一：函数声明
        f4();
        function f4(){
            console.log("我是函数f4");
        }
        
        //变量提升
        // function f4(){
        //     console.log("我是函数f4");
        // }
        // f4();

        //方式二:函数表达式
       
        // f5();//报错
        var f5=function(){
            console.log("我是函数f5");
        };
        
        //变量提升
        // var f5;
        // f5();
        // f5=function(){
        //     console.log("我是函数f5");
        // };
        console.log(111);

    </script>
</head>
<body>
    
</body>
</html>